//
// Created by wkm on 2024-04-21.
//

#include "shiftrows_test.h"

void shiftrows_test() {

    sc_clock clk("myclk", 2, sc_core::SC_NS);
    sc_signal<bool> reset, start;
    sc_signal<exe_state> done;
    sc_signal<sc_uint<DATA_SIZE>> input_data_1;
    sc_signal<sc_uint<DATA_SIZE>> input_data_2;
    sc_signal<sc_uint<DATA_SIZE>> input_data_3;
    sc_signal<sc_uint<DATA_SIZE>> input_data_4;
    sc_signal<sc_uint<DATA_SIZE>> input_data_5;
    sc_signal<sc_uint<DATA_SIZE>> input_data_6;
    sc_signal<sc_uint<DATA_SIZE>> input_data_7;
    sc_signal<sc_uint<DATA_SIZE>> input_data_8;
    sc_signal<sc_uint<DATA_SIZE>> input_data_9;
    sc_signal<sc_uint<DATA_SIZE>> input_data_10;
    sc_signal<sc_uint<DATA_SIZE>> input_data_11;
    sc_signal<sc_uint<DATA_SIZE>> input_data_12;
    sc_signal<sc_uint<DATA_SIZE>> input_data_13;
    sc_signal<sc_uint<DATA_SIZE>> input_data_14;
    sc_signal<sc_uint<DATA_SIZE>> input_data_15;
    sc_signal<sc_uint<DATA_SIZE>> input_data_16;

    sc_signal<sc_uint<DATA_SIZE>> output_data_1;
    sc_signal<sc_uint<DATA_SIZE>> output_data_2;
    sc_signal<sc_uint<DATA_SIZE>> output_data_3;
    sc_signal<sc_uint<DATA_SIZE>> output_data_4;
    sc_signal<sc_uint<DATA_SIZE>> output_data_5;
    sc_signal<sc_uint<DATA_SIZE>> output_data_6;
    sc_signal<sc_uint<DATA_SIZE>> output_data_7;
    sc_signal<sc_uint<DATA_SIZE>> output_data_8;
    sc_signal<sc_uint<DATA_SIZE>> output_data_9;
    sc_signal<sc_uint<DATA_SIZE>> output_data_10;
    sc_signal<sc_uint<DATA_SIZE>> output_data_11;
    sc_signal<sc_uint<DATA_SIZE>> output_data_12;
    sc_signal<sc_uint<DATA_SIZE>> output_data_13;
    sc_signal<sc_uint<DATA_SIZE>> output_data_14;
    sc_signal<sc_uint<DATA_SIZE>> output_data_15;
    sc_signal<sc_uint<DATA_SIZE>> output_data_16;

    shiftrows my_shiftrows("my_shiftrows");
    my_shiftrows.clk(clk);
    my_shiftrows.done(done);
    my_shiftrows.start(start);
    my_shiftrows.reset(reset);
    my_shiftrows.input_data_1(input_data_1);
    my_shiftrows.input_data_2(input_data_2);
    my_shiftrows.input_data_3(input_data_3);
    my_shiftrows.input_data_4(input_data_4);
    my_shiftrows.input_data_5(input_data_5);
    my_shiftrows.input_data_6(input_data_6);
    my_shiftrows.input_data_7(input_data_7);
    my_shiftrows.input_data_8(input_data_8);
    my_shiftrows.input_data_9(input_data_9);
    my_shiftrows.input_data_10(input_data_10);
    my_shiftrows.input_data_11(input_data_11);
    my_shiftrows.input_data_12(input_data_12);
    my_shiftrows.input_data_13(input_data_13);
    my_shiftrows.input_data_14(input_data_14);
    my_shiftrows.input_data_15(input_data_15);
    my_shiftrows.input_data_16(input_data_16);

    my_shiftrows.output_data_1(output_data_1);
    my_shiftrows.output_data_2(output_data_2);
    my_shiftrows.output_data_3(output_data_3);
    my_shiftrows.output_data_4(output_data_4);
    my_shiftrows.output_data_5(output_data_5);
    my_shiftrows.output_data_6(output_data_6);
    my_shiftrows.output_data_7(output_data_7);
    my_shiftrows.output_data_8(output_data_8);
    my_shiftrows.output_data_9(output_data_9);
    my_shiftrows.output_data_10(output_data_10);
    my_shiftrows.output_data_11(output_data_11);
    my_shiftrows.output_data_12(output_data_12);
    my_shiftrows.output_data_13(output_data_13);
    my_shiftrows.output_data_14(output_data_14);
    my_shiftrows.output_data_15(output_data_15);
    my_shiftrows.output_data_16(output_data_16);


    shiftrows_driver my_shiftrows_driver("my_shiftrows_driver");
    my_shiftrows_driver.d_clk(clk);
    my_shiftrows_driver.d_reset(reset);
    my_shiftrows_driver.d_start(start);
    my_shiftrows_driver.d_input_data_1(input_data_1);
    my_shiftrows_driver.d_input_data_2(input_data_2);
    my_shiftrows_driver.d_input_data_3(input_data_3);
    my_shiftrows_driver.d_input_data_4(input_data_4);
    my_shiftrows_driver.d_input_data_5(input_data_5);
    my_shiftrows_driver.d_input_data_6(input_data_6);
    my_shiftrows_driver.d_input_data_7(input_data_7);
    my_shiftrows_driver.d_input_data_8(input_data_8);
    my_shiftrows_driver.d_input_data_9(input_data_9);
    my_shiftrows_driver.d_input_data_10(input_data_10);
    my_shiftrows_driver.d_input_data_11(input_data_11);
    my_shiftrows_driver.d_input_data_12(input_data_12);
    my_shiftrows_driver.d_input_data_13(input_data_13);
    my_shiftrows_driver.d_input_data_14(input_data_14);
    my_shiftrows_driver.d_input_data_15(input_data_15);
    my_shiftrows_driver.d_input_data_16(input_data_16);


    shiftrows_monitor my_shiftrows_monitor("my_shiftrows_monitor");
    my_shiftrows_monitor.clk(clk);
    my_shiftrows_monitor.m_done(done);
    my_shiftrows_monitor.m_output_data_1(output_data_1);
    my_shiftrows_monitor.m_output_data_2(output_data_2);
    my_shiftrows_monitor.m_output_data_3(output_data_3);
    my_shiftrows_monitor.m_output_data_4(output_data_4);
    my_shiftrows_monitor.m_output_data_5(output_data_5);
    my_shiftrows_monitor.m_output_data_6(output_data_6);
    my_shiftrows_monitor.m_output_data_7(output_data_7);
    my_shiftrows_monitor.m_output_data_8(output_data_8);
    my_shiftrows_monitor.m_output_data_9(output_data_9);
    my_shiftrows_monitor.m_output_data_10(output_data_10);
    my_shiftrows_monitor.m_output_data_11(output_data_11);
    my_shiftrows_monitor.m_output_data_12(output_data_12);
    my_shiftrows_monitor.m_output_data_13(output_data_13);
    my_shiftrows_monitor.m_output_data_14(output_data_14);
    my_shiftrows_monitor.m_output_data_15(output_data_15);
    my_shiftrows_monitor.m_output_data_16(output_data_16);

    sc_start();
}